package org.sosim.modelo.processo;

import org.sosim.modelo.instrucao.Instrucao;
import org.sosim.modelo.programa.Programa;


public class Processo {
	
	private final int idProcesso;
	private int prioridade;
	private ContextoSoftware software;
	private ContextoHardware hardware;
	private EstadoProcesso estado;
	private Instrucao instrucaoAtual;
	
	public Processo(int idProcesso, Programa programa, int prioridade){
		this.idProcesso = idProcesso;
		this.prioridade = prioridade;
		this.software = new ContextoSoftware(programa.getIdPrograma());
		this.estado = EstadoProcesso.NOVO;
	}
	
	public int getIdProcesso() {
		return idProcesso;
	}
	
	public int getPrioridade() {
		return prioridade;
	}

	public void setPrioridade(int prioridade) {
		this.prioridade = prioridade;
	}

	public EstadoProcesso getEstado() {
		return estado;
	}

	public void setEstado(EstadoProcesso estado) {
		this.estado = estado;
	}

	public ContextoSoftware getSoftware() {
		return software;
	}

	public void setSoftware(ContextoSoftware software) {
		this.software = software;
	}

	public ContextoHardware getHardware() {
		return hardware;
	}

	public void setHardware(ContextoHardware hardware) {
		this.hardware = hardware;
	}
	
}
